/*
 * 
 */
package co.edu.udistrital.erpgrid.interceptor;

import java.util.HashMap;
import java.util.Map;

import org.aspectj.lang.ProceedingJoinPoint;

/**
 * La Clase InterceptorJaio. Prueba de intercepcion con aspect
 *
 * @author edwin-ricardo
 * @version: 1.0.0
 * @FechaCreacion: 01/05/2011
 */
//@Repository
//@Aspect
public class InterceptorJaio {
	/**
	 * Logger.
	 */
//	private static final Logger LOG = LoggerFactory
//	.getLogger(InterceptorJaio.class);
	
	public InterceptorJaio() {
//		LOG.info("***********constructor INTERCEPTANDO***********");
		System.out.println("***********constructor INTERCEPTANDO***********");
	}

	

	
//	@Around("bean(*)")
	/**
 * Interceptar.
 *
 * @param pjp the pjp
 * @return the object
 * @throws Throwable the throwable
 */
public Object interceptar(ProceedingJoinPoint pjp)
			throws Throwable {

		System.out.println("***********INTERCEPTANDO***********");
//		LOG.info("***********INTERCEPTANDO***********");
		Object retorno = null;

		Map<String, String> error = null;
		long tiempo = 0;

		try {
			long inicio = System.currentTimeMillis();
			retorno = pjp.proceed();
			long fin = System.currentTimeMillis();
			tiempo = fin - inicio;
		} catch (Throwable e) {
			error = new HashMap<String, String>();
			error.put("mensaje", e.getMessage());
			error.put("tipo", e.getClass().toString());
			throw e;
		} finally {
//			Map<String, String> informacion = extractor
//					.extraerInformacionOperacion(entity);
//			agregarInformacionAdicional(pjp, retorno, error, tiempo,
//					informacion);
//			generadorMensajeImpl.generarMensajeTransaccion(informacion);
		}

		return retorno;
	}

}
